// // 全新的内置对象 静态类 不能通过new的方式构建实例对象 => Math一样
// // 13个方法! 对应Proxy的13个方法, 一一对应!
// const obj = {
//   foo: '123',
//   bar: '456'
// }
// const proxy = new Proxy(obj, {
//   get(target, property) {
//     // 监视逻辑
//     console.log('监视get')
//     return Reflect.get(target, property)
//   }
// })
// console.log(proxy.foo)
// ---------------------------------------------------
// 原来操作对象的API
const obj = {
  name: 'zs',
  age: 18
}
// 是否存在某个属性(在true 不在false) 删除某个属性 获取所有的属性名(数组) 就很不统一
// delete返回false仅当属性存在，无法删除。 在所有其他情况下，它将返回true 。
console.log('name' in obj, delete obj[''], Object.keys(obj))
// 提供了统一的一套用于操作对象的API
console.log(
  Reflect.has(obj, 'name'),
  Reflect.deleteProperty(obj, ''),
  Reflect.ownKeys(obj)
)
// 之前的方法会被废弃掉!!!
